<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Cambioparal extends MN_Controller {

    function __construct() {
        parent::__construct();
        $this->load->database();
        $this->load->helper(array('url', 'form'));
        $this->load->library('ion_auth');
        $this->load->library('session');
        $this->load->model('Docente_Model');
        $this->load->model('Periodos_Model');
        $this->load->model('Pensum_Model');
        $this->load->model('Carrera_Model');
        $this->load->model('Ciclos_Model');
        $this->load->model('Reportes_Model');
        $this->load->model('Estudiante_Model');
        $this->load->model('Distributivo_Model');
    }

    public function index() {

        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();
    }

    public function inicio() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();
         $this->session->unset_userdata('ses_paralelo');


        $this->data['periodos'] = $this->Periodos_Model->getListado();
        //$this->data['periodos'] = $this->Periodos_Model->getPeriodoActivo();
        $this->data['carrera'] = $this->Carrera_Model->getListado();

        $periodo = $this->uri->segment(3);
        $ide_car = $this->uri->segment(4);
        $ide_pen = $this->uri->segment(5);
        $codigo_cic = $this->uri->segment(6);
        //$seccion = $this->uri->segment(7);
        //$paralelo = $this->uri->segment(8);

        if (!empty($periodo) && $periodo != -1) {
            $this->data['periodos'] = $this->Periodos_Model->getListado();
            $this->data['periodo'] = $periodo;
        } else {
            $this->data['periodos'] = $this->Periodos_Model->getListado();
            $this->data['periodo'] = -1;
            //$periodo = $this->data['periodos'][0];
        }


        if (!empty($ide_car) && $ide_car != -1) {
            $this->data['pensum'] = $this->Pensum_Model->getPensumCarreras($ide_car);
            $this->data['ide_car'] = $ide_car;
            //$this->data['ide_pen'] = -1;
        } else {
            $this->data['ide_car'] = -1;
        }
        if (!empty($ide_pen) && $ide_pen != -1) {
            $this->data['ciclo'] = $this->Ciclos_Model->getCiclosPensum($ide_pen);
            $this->data['ide_pen'] = $ide_pen;
        } else {
            $this->data['ide_pen'] = -1;
        }
        if (!empty($codigo_cic) && $codigo_cic != -1) {
            //$this->data['materias'] = $this->Materia_Model->getMateriaCiclo($codigo_cic);
            $this->data['codigo_cic'] = $codigo_cic;
        } else {
            $this->data['codigo_cic'] = -1;
        }



        if (isset($_POST['btn1'])) {
            //$cod=$this->input->post('ide_pen');

            $carr = $this->Carrera_Model->getDatosCarrera($ide_car);
            $this->data['nom_car'] = $carr[0]['nombre_car'];
            $this->data['ide_lec'] = $periodo['ide_lec'];
        }
        $this->_render('cambioparal/new');
    }

    public function procesar() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();

        
        if ($this->session->userdata('ses_paralelo') == TRUE) {
            $ses_matr = $this->session->userdata('ses_paralelo');
            $ide_lec = $ses_matr['ide_lec'];
            $ide_car = $ses_matr['ide_car'];
            $ide_pen = $ses_matr['ide_pen'];
            $ide_ciclo = $ses_matr['ide_ciclo'];
            $seccion = $ses_matr['seccion'];
            $paralelo = $ses_matr['paralelo'];

            
        }else{
            $ide_lec = $this->input->post('ide_lec');
            $ide_car = $this->input->post('ide_car');
            $ide_pen = $this->input->post('ide_pen');
            $ide_ciclo = $this->input->post('codigo_cic');
            $seccion = $this->input->post('seccion');
            $paralelo = $this->input->post('paralelo');

        }
        $this->data['ide_lec'] = $ide_lec;
        $this->data['ide_car'] = $ide_car;
        $this->data['ide_pen'] = $ide_pen;
        $this->data['ide_ciclo'] = $ide_ciclo;
        $this->data['seccion'] = $seccion;
        $this->data['paralelo'] = $paralelo;




        if (isset($_POST['listar'])) {
            $seccion = 0;
            $this->data['listar'] = 1;
        }


        $this->data['nom_seccion'] = ($seccion == 1 ? "DIURNO" : ($seccion == 2 ? "NOCTURNO" : "FIN DE SEMANA"));

        $arreglo = array();

        if ($ide_lec > 0 && $ide_car > 0 && $ide_pen > 0 && $ide_ciclo > 0 && $seccion > 0) {
            $arreglo = $this->Reportes_Model->getAlumnosSemestreNormal($ide_lec, $ide_car, $ide_pen, $ide_ciclo, $seccion, $paralelo);
            if (count($arreglo) > 0) {
                $this->data['nombre_car'] = (!empty($arreglo) ? $arreglo[0]['nombre_car'] : "SIN DATOS");
                $this->data['nombre_cic'] = (!empty($arreglo) ? $arreglo[0]['nombre_cic'] : "SIN DATOS");

                $arreglo = $this->orderMultiDimensionalArray($arreglo, 'apellido_pers', false);
                foreach ($arreglo as $key => $pos) {

                    if ($pos['modo_mat'] > 1) {
                        if (!$this->verificar_ciclo($pos['id_matr'], $pos['ide_cic'])) {
                            unset($arreglo[$key]);
                        }
                    }
                }
            }


            $this->data['reporte'] = $arreglo;
            //print_r($arreglo);
            $this->_render('cambioparal/lista1');
        } else { //if ($ide_lec >0 && $ide_car <0 && $ide_pen<0 && $ide_ciclo<0 && $seccion>0) {
            $arreglo = $this->Reportes_Model->getAlumnosSemestreNormal($ide_lec, $ide_car, $ide_pen, $ide_ciclo, $seccion, $paralelo);
            if (count($arreglo) > 0) {
                $arreglo = $this->orderMultiDimensionalArray($arreglo, 'apellido_pers', false);


                //echo ($ide_lec.$ide_car.$ide_pen.$ide_ciclo.$seccion);
                if (isset($_POST['listar'])) {
                    $arreglo = $this->orderMultiDimensionalArray($arreglo, 'seccion', false);
                } else {
                    $arreglo = $this->orderMultiDimensionalArray($arreglo, 'nombre_car', false);
                }
            }

            $this->data['reporte'] = $arreglo;
            $this->_render('cambioparal/lista2');
        }


        //$this->_render('rpt_inscrip/lista1');
    }

    public function presentardatos() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();

        $this->load->model('Matricula_Model');
        $this->load->model('Cursa_Model');
        $id_matr = $this->uri->segment(3);
        $cambio = $this->uri->segment(4);
        //$modo_mat = $this->uri->segment(5);
        $cambio = (empty($cambio) ? 0 : 1);
       

        $this->data['inscrito'] = $this->Matricula_Model->getDatosMatricula($id_matr);
        $cursa = $this->Cursa_Model->getDatosCursa($id_matr);
        if (empty($modo_mat)) {
            $modo_mat = $this->data['inscrito'][0]['modo_mat'];
        }

        $ide_lec = $this->Periodos_Model->getDatosPeriodo($cursa[0]['periodos_lectivos_ide_lec']);

        $ide_car = $this->Carrera_Model->getDatosCarrera($cursa[0]['ide_car']);
        $ide_pen = $this->Pensum_Model->getDatosPensum($cursa[0]['ide_pen']);
        $ide_ciclo = $this->Ciclos_Model->getDatosCiclo($cursa[0]['ide_cic']);

        $cod_pers = $this->Estudiante_Model->getDatosIdePers($cursa[0]['estudiante_ide_est']);


        if ($cambio == 0) {
            $seccion = $cursa[0]['seccion'];
            $paralelo = $cursa[0]['paralelo'];
            $ses_matr = array(
                'ide_lec' =>  $ide_lec[0]['ide_lec'], 'ide_car' => $ide_car[0]['ide_car'],
                'ide_pen' => $ide_pen[0]['ide_pen'], 'ide_ciclo' => $ide_ciclo[0]['ide_cic'],
                'seccion' => $seccion,'paralelo' => $paralelo);
            $this->session->set_userdata('ses_paralelo', $ses_matr);

            $this->data['materias'] = $this->Cursa_Model->getCursaDistributivo($id_matr);
        } elseif ($cambio == 1 AND $modo_mat == 1) {
            $seccion = $this->uri->segment(5);
            $paralelo = $this->uri->segment(6);

            $this->data['materias'] = $this->Distributivo_Model->getDatosDistributivo($ide_lec[0]['ide_lec'], $ide_car[0]['ide_car'], $ide_pen[0]['ide_pen'], $ide_ciclo[0]['codigo_cic'], $seccion, $paralelo, $ide_mat = null);
            //print_r($this->data['materias']);
        } else {
            $seccion = $this->uri->segment(5);
            $paralelo = $this->uri->segment(6);
            
            $this->data['materias'] = $this->Distributivo_Model->getDatosDistributivo($ide_lec[0]['ide_lec'], $ide_car[0]['ide_car'], $ide_pen[0]['ide_pen'], $ide_ciclo[0]['codigo_cic'], $seccion, $paralelo, $ide_mat = null);
        }

        $this->data['estudiante'] = $this->Estudiante_Model->getDatosEstudiante($cod_pers);
        $this->data['ide_lec'] = $ide_lec[0]['ide_lec'];
        $this->data['ide_car'] = $ide_car[0]['ide_car'];
        $this->data['ide_pen'] = $ide_pen[0]['ide_pen'];
        $this->data['ide_ciclo'] = $ide_ciclo[0]['ide_cic'];
        $this->data['seccion'] = $seccion;

        $this->data['ide_lec_nom'] = $ide_lec[0]['descripcion_lec'];
        $this->data['ide_car_nom'] = $ide_car[0]['nombre_car'];
        $this->data['ide_pen_nom'] = $ide_pen[0]['descripcion_pen'];
        $this->data['ide_ciclo_nom'] = $ide_ciclo[0]['nombre_cic'];

        $this->data['seccion_nom'] = ($seccion == 1 ? "DIURNO" : ($seccion == 2 ? "NOCTURNO" : "FINES DE SEMANA"));
        $this->data['paralelo_nom'] = $paralelo;
        //$this->data['nro_mat'] = $[0][''];

        $this->data['nro_cup'] = $cursa[0]['cupo_cur'];

        $this->data['id_matr'] = $id_matr;
        $this->data['modo_mat'] = $modo_mat;
        $this->data['cambio'] = $cambio;
        //print_r($this->data['inscrito']);


        $this->_render('cambioparal/procesom');
    }

    public function modificadatos() {
        if ($this->input->post('cambio') > 0) {
            $this->load->model('Cursa_Model');
            $nro_filas = $this->input->post('nro_filas');
            $id_matr=$this->input->post('id_matr');
            $cursa_alum=$this->Cursa_Model->getDatosCursa($id_matr);
            //print_r($cursa_alum);
            
            
            echo ("<br><br>");
            //print_r($cursa_alum);
            

           if ($nro_filas > 0) {
                //$this->Cursa_Model->eliminaFisicaCursa($id_matr);
                for ($i = 1; $i <= $nro_filas; $i++) {

                    $cursa = array(
                        "materia_ide_mat" => $this->input->post('ide_mat' . ($i - 1)),
                        "docente_ide_doc" => $this->input->post('ide_doc' . ($i - 1)),
                        "matriculas_id_matr" => $id_matr,
                        "seccion" => $this->input->post('seccion'),
                        "paralelo" => $this->input->post('paralelo'));
                    $cursa_alum=$this->Eliminar_materias($cursa_alum, $this->input->post('ide_mat' . ($i - 1))
                            , $id_matr);


                   $this->Cursa_Model->Modifica_Secc_Paralelo($cursa);

                    //print_r($cursa);
                    //$this->Distributivo_Model->grabarDistributivo($distributivo);
                    //
        
                }
                if (count($cursa_alum)>0){
                    echo "cambio de seccion en arrasrtre";
                    foreach ($cursa_alum as $key => $row) {
                        $cursa = array(
                        "materia_ide_mat" => $row['materia_ide_mat'],
                        "docente_ide_doc" => $row['docente_ide_doc'], //docente no asigando
                        "matriculas_id_matr" => $row['matriculas_id_matr'],
                        "seccion" => $this->input->post('seccion'),
                        "paralelo" => $this->input->post('paralelo'));
                         $this->Cursa_Model->Modifica_Secc_Paralelo($cursa);
                        
                        
                    }
                }
                //$this->_render('distributivo/new');
            }
            
            
        }
        //echo "modificacion realizada";
        redirect('cambioparal/procesar');
        //$this->_render('cambioparal/inicio');
        
    }
    function Eliminar_materias($cursa_alum,$ide_mat,$id_matr){
        foreach ($cursa_alum as $key => $row) {
            if($row['materia_ide_mat']==$ide_mat && $row['matriculas_id_matr']==$id_matr ){
                //echo($row['materia_ide_mat']);
                //echo("--");
                //echo($row['matriculas_id_matr'] );
                //echo("--");
                unset($cursa_alum[$key]);
                
            }
            
            
            //if($row[$key]['']){
                
            //}
            
        }
         //print_r($cursa_alum);
        //echo ("<br><br>");
        return $cursa_alum;
        
    }

    function orderMultiDimensionalArray($toOrderArray, $field, $inverse = false) {
        $position = array();
        $newRow = array();
        foreach ($toOrderArray as $key => $row) {
            $position[$key] = $row[$field];
            $newRow[$key] = $row;
        }
        if ($inverse) {
            arsort($position);
        } else {
            asort($position);
        }
        $returnArray = array();
        foreach ($position as $key => $pos) {
            $returnArray[] = $newRow[$key];
        }
        return $returnArray;
    }

    public function prueba() {
        //$this->verificar_ciclo(1901,1);
    }

    public function verificar_ciclo($id_matr, $ide_cic) {
        $ciclo = array(
            array('ciclo' => 1, 'cant' => 0, 'id' => 0),
            array('ciclo' => 2, 'cant' => 0, 'id' => 0),
            array('ciclo' => 3, 'cant' => 0, 'id' => 0),
            array('ciclo' => 4, 'cant' => 0, 'id' => 0),
            array('ciclo' => 5, 'cant' => 0, 'id' => 0),
            array('ciclo' => 6, 'cant' => 0, 'id' => 0));

        $arreglo = $this->Reportes_Model->getCantidadMateriasCicloPorMatricula($id_matr);
        //print_r($arreglo);
        //foreach($ciclo as $item){
        for ($i = 0; $i < 6; $i++) {
            //echo $item['ciclo'];
            //echo $item['cant'];
            //echo $item['id'];
            $cont = 0;

            foreach ($arreglo as $row) {
                if ($ciclo[$i]['ciclo'] == intval($row['codigo_cic'])) {
                    $cont++;
                    //echo $cont;
                    $ciclo[$i]['cant'] = $cont;
                    $ciclo[$i]['id'] = $row['ide_cic'];
                }
            }
        }
        //echo "<br>".$ide_cic;
        $ciclo = $this->orderMultiDimensionalArray($ciclo, 'cant', TRUE);
        //print_r($ciclo);
        $ide_c = 0;
        if ($ciclo[0]['cant'] > $ciclo[1]['cant']) {
            //echo "<br/>".$ciclo[0]['id'].' - '.$ciclo[0]['ciclo'];
            $ide_c = $ciclo[0]['id'];
        } elseif ($ciclo[0]['cant'] == $ciclo[1]['cant']) {
            //echo $ciclo[0]['ciclo']. $ciclo[1]['ciclo'];
            $ide_c = ($ciclo[0]['ciclo'] > $ciclo[1]['ciclo'] ? $ciclo[0]['id'] : $ciclo[1]['id']);
            //if($ciclo[0]['ciclo']>$ciclo[1]['ciclo']){
            //echo "<br/>".$ciclo[0]['id'].' - '.$ciclo[0]['ciclo'];
            //    $ide_c=$ciclo[0]['id'];
            //}
        }
        //echo $ide_c;
        if ($ide_cic != $ide_c) {
            return FALSE;
        } else {
            return TRUE;
        }
        //print_r($ciclo);
    }

}
